package com.xyy.saas.payment.cores.vo;


import com.xyy.saas.payment.cores.enums.ChannelEnum;

import java.io.Serializable;

/**
 * @author wangtianqi
 * @date 2019/12/16 20:20
 */
public class OrderClearingVo implements Serializable {

    private static final long serialVersionUID = -8014458086231138466L;
    /**
     * 支付单号
     */
    private String payNo;
    /**
     * 支付渠道 （此处为了保证 订单 + 支付渠道 对应的支付单唯一）
     */
    private ChannelEnum payChannel;
    /**
     * 清分接收方 参数格式 ： List<OrderClearingUserVo> 转JSON
     * OrderRoyaltyUserVo包含两个参数： "clearingUser" 、 "businessIdType" 、"amount" ; 用于指定清分接收方 、接收方来源 和 清分金额。把这些OrderClearingUserVo放进一个list内，然后转成json（参与签名）
     * 上述 参数内的amount 必须大于 0； 不可 小于等于 0
      */
    private String clearingJson;
    /**
     * 本次清分发起，需要给业务方的佣金
     */
    private Integer commission;
    /**
     * 哪个清分接收方出渠道手续费 ， 传入cleaningJson 参数内对应 出手续费方的 clearingUser 的值, 手续费目前参与清分记账 ，计算方式为向上取整
     * 此字段可以为 null ，为null时，手续费支付方默认为 业务方 （为null时，此字段不参与签名）
     *
     * 手续费 计算规则 （微信上手续费收取 为 四舍五入， 为了防止出现金额不足的状况， 支付平台手续费记账方式为 ： 支付时手续费为向上取整， 退款时退手续费为向下取整）
     */
    private String feePayer;
    /**
     * 手续费支付方类型 如果feePayer字段为空，那这个字段也以为空 （为null时，此字段不参与签名）
     */
    private String feePayerIdType;
    /**
     *接口调用方的标识，支付平台分配，用于验签
     */
    private String invoker;
    /**
     * 接口调用方的业务订单类型, 支付平台分配
     */
    private String businessOrderType;

    public String getPayNo() {
        return payNo;
    }

    public void setPayNo(String payNo) {
        this.payNo = payNo;
    }

    public String getClearingJson() {
        return clearingJson;
    }

    public void setClearingJson(String clearingJson) {
        this.clearingJson = clearingJson;
    }

    public String getFeePayer() {
        return feePayer;
    }

    public void setFeePayer(String feePayer) {
        this.feePayer = feePayer;
    }

    public Integer getCommission() {
        return commission;
    }

    public void setCommission(Integer commission) {
        this.commission = commission;
    }

    public ChannelEnum getPayChannel() {
        return payChannel;
    }

    public void setPayChannel(ChannelEnum payChannel) {
        this.payChannel = payChannel;
    }

    public String getFeePayerIdType() {
        return feePayerIdType;
    }

    public void setFeePayerIdType(String feePayerIdType) {
        this.feePayerIdType = feePayerIdType;
    }

    public String getInvoker() {
        return invoker;
    }

    public void setInvoker(String invoker) {
        this.invoker = invoker;
    }

    public String getBusinessOrderType() {
        return businessOrderType;
    }

    public void setBusinessOrderType(String businessOrderType) {
        this.businessOrderType = businessOrderType;
    }
}
